Many computing and storage system architectures separate computing-centric tasks from storage-centric tasks. This has brought about rapid advances in the deployment and usage of storage systems such as storage area networks (SANs) and network-attached storage (NAS) systems. Continue deployment of such architectures that separate computing tasks from storage tasks has in turn brought about rapid and concurrent advances in both compute-centric systems storage-centric systems. Compute-centric systems now scale almost limitlessly in the dimension of computational capability. At the same time, storage-centric systems (e.g., hyperconverged distributed storage systems) have evolved to be able to scale almost limitlessly in the dimension of storage (e.g., storage capacity, storage I/O throughput, etc.). More recently, hyperconverged distributed storage systems scale in multiple dimensions including in the dimension of computational capability.
This evolution brings to bear the conceptual possibility that computing tasks that are being performed on high-performance compute-centric systems might be able to be handled by hyperconverged distributed storage systems. This concept has far-reaching commercial implications, not the least of which is that as time goes by and the expensive high-performance compute-centric systems age (and eventually reach their end-of-life), it is conceptually possible that computing workloads that are assigned to the aforementioned expensive high-performance compute-centric systems can be migrated to a suitably configured hyperconverged distributed storage system that can handle migrated computational tasks as well as corresponding storage tasks.
Strictly as example, it is possible that a computing workload such as a database engine that has been running on expensive high-performance compute-centric systems can be migrated to a suitably configured hyperconverged distributed storage system that can handle the computational tasks (e.g., the query processor of the database engine) as well as the corresponding storage tasks (e.g., storing and accessing large sets of database records).
Unfortunately, many challenges exist with respect to actually implementing such a migration. Legacy techniques for migrating a compute workload from a compute-centric system to a suitably configured hyperconverged distributed storage system involve a great deal of administrative intervention. Such administrative intervention is highly specialized, extremely human-effort intensive, and often prone to error. The barriers are so high that in many cases a surmounted attempt to perform a migration using the aforementioned legacy technique ends in a decision not to migrate, and instead to purchase additional expensive high-performance compute-centric systems. This effect merely delays the migration. Worse, in many cases, the additional expensive high-performance compute-centric systems are purchased and installed merely to handle periodically- or seasonally-recurring periods of high computing demands. In such cases, the return on investment pertaining to the newly purchased and installed equipment suffers.
What is needed is a technological solution to the problem of migrating computing tasks that are being performed on high-performance compute-centric systems to hyperconverged distributed storage systems that can handle migrated computing tasks as well as corresponding storage tasks.
Some of the approaches described in this background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.